<?php

/*
 * Object/XDate.php
 */

namespace RHX\Model\Object;

use RHX\Helper\RHDateTime;

class XData {

    /**
     * Différence d'heure entre l'heure d'entrée et l'heure de sortie
     *
     * @var string
     */
    public $tempsDiff = '00:00';

    /**
     * Valeur en Float de la différence d'heure
     *
     * @var float
     */
    public $tempsValeur = 0.0;

    /**
     * Valeur de la différence de temps
     *
     * @var float
     */
    public $montant = 0.0;

    /**
     * Indique s'il y a retard ou non
     *
     * @var bool
     */
    public $retard		 = false;

    /**
     * Temps de retard
     *
     * @var string
     */
    public $tempsRetard = '00:00';

    /**
     * Indique s'il y a Départ Anticipé ou non
     *
     * @var bool
     */
    public $anticipe = false;

    /**
     * Temps de départ Anticipé
     * 
     * @var string
     */
    public $tempsAnticipe	 = '00:00';

    /**
     * Constructeur
     *
     * @param array $data
     */
    public function __construct($data = array()) {
	$this->exchangeArray($data);
    }

    /**
     * Remplissage
     *
     * @param array $data
     */
    public function exchangeArray($data = array()) {
	$this->tempsDiff	 = isset($data['tempsDiff']) ? $data['tempsDiff'] : '00:00';
	$this->tempsValeur	 = isset($data['tempsValeur']) ? $data['tempsValeur'] : 0.0;
	$this->montant		 = isset($data['montant']) ? $data['montant'] : 0.0;
	$this->retard		 = isset($data['retard']) ? $data['retard'] : false;
	$this->tempsRetard	 = isset($data['tempsRetard']) ? $data['tempsRetard'] : '00:00';
	$this->anticipe		 = isset($data['anticipe']) ? $data['anticipe'] : false;
	$this->tempsAnticipe	 = isset($data['tempsAnticipe']) ? $data['tempsAnticipe'] : '00:00';
    }

    /**
     * Copie Tableau
     *
     * @return array
     */
    public function getArrayCopy() {
	return get_object_vars($this);
    }

    /**
     * Montant au format Français
     *
     * @return string
     */
    public function getMontant() {
	return number_format($this->montant, 2, ',', ' ');
    }

    /**
     * Valeur du temps au format français
     * 
     * @return string
     */
    public function getTempsValeur() {
	return number_format($this->tempsValeur, 2, ',', ' ');
    }

}
